const express = require('express')
const app = express()
const path = require('path')
app.use(express.urlencoded())
app.use(express.json())
// app.use('/adduser',(req,res,next)=>{
//   let dataStr = ''
//   req.on('data',(chunk)=>{
//     dataStr+= chunk.toString()
//   })
//   req.on('end',()=>{
//     req.body = JSON.parse(dataStr)
//     // const o = {}
//     // dataStr.split('&').forEach(item=>{
//     //   const [key,value] = item.split('=')
//     //   o[key] = value
//     // })
//     // req.body = o
//   //  const data = dataStr.split('&').reduce((prev,current)=>{
//   //     const [key,value] = current.split('=')
//   //     prev[key] = value
//   //     return prev
//   //   },{})
//   //   req.body = data
//     next()
//   })
// })
// app.use('/adduser',(req,res,next)=>{
//   let dataStr = ''
//   req.on('data',(chunk)=>{
//       dataStr+= chunk.toString()
//   })
//   req.on('end',()=>{
//     // const o = {}
//     // dataStr.split('&').forEach(item=>{
//     //   const [key,value] = item.split('=')
//     //    o[key]=value
//     // })
//     // const data = dataStr.split('&').reduce((prev,current)=>{
//     //   const [key,value] = current.split('=')
//     //   prev[key] = value
//     //   return prev
//     // },{})

//     req.body = JSON.parse(dataStr)
//     next()
//   })
 
// })

//手写处理body请求的中间件
/* app.use((req, res, next) => {
  // console.log(req);
  let dataStr = ""
  req.on("data", (chunk) => {
    // console.log(chunk.toString());//user=laoli&pass=123
    dataStr += chunk.toString()
  })
  req.on("end", () => {
    console.log("ok", dataStr);
    // dataStr.split("&")//["name=laoli","age=123"]
    //写法1
    // const o = {};
    // dataStr.split("&").forEach(item => {
    //   const [key, value] = item.split("=") //["name","laoli"]
    //   o[key] = value;
    // })
    // console.log(o, "oooooo");

    //写法2
    const data = dataStr.split("&").reduce((prev, current) => {
      const [key, value] = current.split("=");
      prev[key] = value;
      return prev;
    }, {})

    console.log(data, "data");

    //再中间件中，得到请求体body的值并处理为一个对象 添加给req的body属性上
    req.body = data;

    next()


  })

  // req.body = 123;

  // next()
}) */

app.post('/adduser',(req,res)=>{
  const {
    name,
    age,
    sex
  } = req.body
  console.log(req.body);
  if(!name || !age || !sex){
    return res.send({
      code: 10001,
      msg: '查询失败',
      data: null
    })
  }
  res.send({
    code: 10000,
    msg: '查询成功',
    data: null
  })
})
app.get('/user',(req,res)=>{
  const {userId} = req.query
  if(userId !== '001'){
    return res.send({
      code: 10001,
      msg: '查询失败',
      data: null
    })
  }
  res.send({
    code: 10000,
    msg: '查询成功',
    data: {
      name: '小牛',
      age: 2,
      sex: '公'
    }
  })
})
app.get('/userInfo/:use',(req,res)=>{
  const {use} = req.params
  if(use !== '001'){
    return res.send({
      code: 10001,
      msg: '查询失败',
      data: null
    })
  }
  res.send({
    code: 10000,
    msg: '查询成功',
    data: {
      name: '探草',
      age: 2,
      sex: '公'
    }
  })
})
app.get('/1',(req,res)=>{
  const ss = path.resolve(__dirname,'./02.基础的get请求.html')
  res.sendFile(ss)
})
app.get('/2',(req,res)=>{
  const ss = path.resolve(__dirname,'./04.get请求.html')
  res.sendFile(ss)
})
app.get('/3',(req,res)=>{
  const ss = path.resolve(__dirname,'./05.get请求-path传参方式.html')
  res.sendFile(ss)
})
// const express = require("express")
// const app = express();
// const path = require("path");
// app.get('/user',(req,res)=>{
//   const {userId} = req.query
//   if(userId !== '001'){
//     return res.send({
//       code: 10001,
//       msg: '查询失败',
//       data: null
//     })
//   }
//   res.send({
//     code: 10000,
//     msg: '查询成功',
//     data: {
//       name: '猪1号',
//       age: 18,
//       hoppy: '爱吃爱喝爱睡爱玩',
//       zl: '猪'
//     }
//   })
// })

// app.get('/userInfo/:user',(req,res)=>{
//   const {user} = req.params
//   if(user !== '001'){
//     return res.send({
//       code: 10001,
//       msg: '查询失败',
//       data: null
//     })
//   }
//   res.send({
//     code: 10000,
//     msg: '查询成功',
//     data: {
//       name: '牛',
//       age: 2,
//       sex: '公'
//     }
//   })
// })
//查询学生信息接口
// app.get("/user", (req, res) => {
//   // console.log(req.query);
//   const {
//     userId
//   } = req.query;


//   //如果查询失败
//   if (userId !== "001") {
//     return res.send({
//       code: 10001,
//       msg: "查询失败",
//       data: null
//     })
//   }


//   //查询成功 响应
//   res.send({
//     code: 10000,
//     msg: "查询成功",
//     data: {
//       name: "李博",
//       age: 18,
//       sex: "男"
//     }
//   })

// })

// app.get("/userInfo/:userId", (req, res) => {
//   // console.log(req.params);
//   const {
//     userId
//   } = req.params;


//   //如果查询失败
//   if (userId !== "001") {
//     return res.send({
//       code: 10001,
//       msg: "查询失败",
//       data: null
//     })
//   }


//   //查询成功 响应
//   res.send({
//     code: 10000,
//     msg: "查询成功",
//     data: {
//       name: "李博",
//       age: 18,
//       sex: "男"
//     }
//   })
// })



//静态资源部署接口
// app.get("/1", (req, res) => {
//   const filePath = path.resolve(__dirname, "./02.基础的get请求.html");
//   res.sendFile(filePath);
// })

// app.get("/2", (req, res) => {
//   const filePath = path.resolve(__dirname, "./04.get请求.html");
//   res.sendFile(filePath);
// })

// app.get("/3", (req, res) => {
//   const filePath = path.resolve(__dirname, "./05.get请求-path传参方式.html");
//   res.sendFile(filePath);
// })
app.get("/4", (req, res) => {
  const filePath = path.resolve(__dirname, "./06.post请求.html");
  res.sendFile(filePath);
})




app.listen(3000, () => {
  console.log("服务器请求成功 请访问 http://127.0.0.1:3000");
})